package com.ebs.md.fxmonitor.topics;

/**
 * <p>Title: FXMonitor</p>
 *
 * <p>Defines keys for Subscription and Connect/Disconnect topics </p>
 *
 * <p>Copyright: Copyright (c) 2004</p>
 *
 * <p>Company: EBS</p> $Id: //depot/MarketData/fxmonitor/main/src/main/java/com/ebs/md/fxmonitor/topics/ClientTopicKeys.java#8 $ not attributable $Revision: #8 $ 1.0
 */



public interface ClientTopicKeys {
//connect
    String ResetSequenceNumberFlag = "reset_seq_flag";
    String ClientProtocolVersion = "client_protocol_version";
    String ClientIp = "source_ip";
    String ClientName = "source_name";
    String NetlinkComponentName = "netlink_id";
    String ConnectionId = "NETLINK_CONN_ID";
    String Reason = "reason";
    String Status = "status";
    String Gracefull = "gracefull";
    String Description = "description";
    String Error = "error_id";
    String Event = "event"; //connect or disconnect

//subscription
    String SpMessageType = "MSG_SUB_TYPE";
    String SubscribeType = "MSG_SUBSCRIBE_TYPE"; //subscribe (1) or unsubscribe (0)
    String MessageType = "msg_sub_type";
    String MessageVersion = "msg_version";
    String SubscriptionId = "SUBSCRIPTION_ID";
    String ArbMessageTime = "arb_msg_time";//ms - long
    String ArbSessionNum = "session_number";
    String ArbSequenceNum = "msg_seq_num";
    String FloorCount = "NUMBER_OF_FLOORS";
    String DealCodes = "DEAL_CODES";
    String FloorKeys = "DEAL_KEYS";
    String Currencies = "CURRENCIES";

    String DbArbMessageTime = "ARB_MSG_TIME";//sec - int
    String DbArbSessionNum = "ARB_SESSION_NUM";
    String DbArbSequenceNum = "ARB_MSG_NUM";

    String DealCode = "DEAL_CODE";
    String FloorKey = "FLOOR_KEY";
    String Currency = "CURRENCY";
    String SessionId = "session_id";

//subscription response
    String SubscriptionStatus = "SUBSCRIPTION_STATUS";
    String CurrenciesCount = "NUMBER_OF_CURRENCIES";
    String DealCodeValid = "DEAL_CODE_VALID";
    String FloorKeyValid = "FLOOR_KEY_VALID";
    String CurrencyValid = "CURRENCY_VALID";
    String NumberOfCcyPairs = "NUMBER_OF_CURRENCY_PAIRS";
    String XPips = "xpips";
    String BigFigureSize = "BFSize";
    String PricePrecision = "PricePrecision";
    String IncrementType = "PipIncrement";
    String CcyPairScaleFactor = "CcyPairScaleFactor";

//connection status
    String EventCode = "event_code";
    String NetworkResponseId = "RESPONSE_ID";
    String ConnectionStatusId = "STATUS_ID";
    String ConnectionStatusText = "STATUS_TEXT";

//latency
    String ClientStartTime = "client_start_time";
    String ClientBeforeFix = "client_before_fix";
    String ClientAfterFix = "client_after_fix";
    
//Order Book
    String BookType = "book_type";
    String QuoteId = "ebs_trans_id";
    String QuoteType = "qte_type";
    String QuoteUpdateAction = "operation";
    String QuotePrice = "prc_qte_value";
    String QuoteSize = "qte_amt_result";
    String QuoteTimestamp = "arb_date";
    String QuoteTraderName = "trader_id";//3 char trader id
    String IsAiQuote = "automatic";//0-ws quote;1-Ai quote
    String IsIntentionalAutomatch = "intentional_automatch";//0-regular quote,1-intentional automatch
    String WorkingTheBalance = "working_the_balance";//0-regular, 1 - quote was generated as a result of working the balance of the hit.
    String LinkedAmount = "linked_amt_result";
    String QuoteSnapshotNumRepGroups = "qte_info_array";
    String QuoteUpdateNumRepGroups = "qte_upd_num_rep_groups";
    String QuoteInterruptFlag = "interrupt_message";//optional field if exists, equals 1 (quote interrupted).
    String QuoteSubmitAmount = "qte_submit_amt";//originally initiated quote amount (defined in qteSubmit msg)
    String QuoteMakerDealCode = "qte_floor_code";
    String QuoteMakerRegion = "arb_region";
    String QuoteMakerRegionSnapshot = "qte_floor_region";

//deal
    String DealId = "deal_id";
    String TakerTicketId = "taker_ticket_id";
    String MakerTicketId = "maker_ticket_id";
    String TakerDealCode = "taker_floor_code";
    String MakerDealCode = "maker_floor_code";
    String TraderId = "trader_id";
    String OrderReference = "order_ref";
    String TakerPBCode = "taker_pb_floor_code";
    String MakerPBCode = "maker_pb_floor_code";
    String IsTakerPC = "is_taker_pc";
    String IsMakerPC = "is_maker_pc";
    String Side = ServerTopicKeys.OUT_DEAL_SIDE_TAG;
    String CcyPair = "ccy_pair_name";
    String Instrument = "instrument";
    String Tenor = "tenor";
    String DealtAmount = ServerTopicKeys.OUT_DEAL_AMOUNT_TAG;
    String DealtRate = "prc_deal_value";
    String LotSize = "lot_size";
    String Region = "region_name";
    String DealCodeSelf = "floor_code_myself";
    String DealCodeCounterparty = "floor_code_counterparty";
    String TakerRegion = "taker_arb_region";
    String MakerRegion = "maker_arb_region";
    String DealCompletionTime = "deal_completion_time";
    String MakerDealStatus = "deal_status_tr";
    String SpreadDealtRate = "effective_deal_price_value";
//    String TakerSpreadDealtRate = "";
//    String MakerSpreadDealtRate = "";
    String ValueDate = "date_value_date";
    String TradeDate = "date_trade_date";
    String SettlementDate = "date_settlement_date";
    String FixingDate = "date_valuation_date";


    String Automatch = "automatch";
    String IntraFloor = "intra_floor";
    String HitToDealDelta = "msec_delta_hit_to_deal";
    String OrderID = "ebs_trans_id";
    String DealMakerQuoteId = "qte_trans_id";


//Global
    String GlobalRegion = "global_region";
    String GlobalSide = "global_side";
    String DbGlobalRegion = "global_region";
    String DbGlobalSide = "global_side";

}
